package com.alpha.dao.interfaces;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.TreeMap;

import javax.naming.NamingException;

import com.alpha.bom.Answer;
import com.alpha.bom.ExamResponse;
import com.alpha.bom.Question;

public interface IExamResponseDao {

	public TreeMap<Question, Answer> retrieveExamResponseAnswers(int examResponseId) throws NamingException, SQLException;
	public ExamResponse retrieveExamResponse(int examResponseId) throws NamingException, SQLException;
	public ArrayList<ExamResponse> retrieveExamResponseByStudent(int studentId) throws NamingException, SQLException;
	public ArrayList<ExamResponse> retrieveExamResponseByExam(int examId) throws NamingException, SQLException;
	public String retrieveAllCompleteStudents(int examId) throws NamingException, SQLException;
	public int getNumberOfTakers(int examId) throws NamingException, SQLException;
	public int getNumberOfAllTakers(int examId) throws NamingException, SQLException;
	public boolean insertExamResponse(int studentId, int examId, int answerId, int questionId) throws NamingException, SQLException;
	public boolean updateExamResponse(int studentId, int examId, int answerId, int questionId) throws NamingException, SQLException;
	public boolean updateDateTaken(int examId, int studentId, Date dateTaken) throws NamingException, SQLException;
	public boolean updateDateTakenOfUntakenExamResponse(int examId) throws NamingException, SQLException;

}
